package basic13;

import java.util.ArrayList;
import java.util.Iterator;

import jihyun.model.Sungjuk_VO;

public class J22_Collection {

	public static void main(String[] args) {
		// 컬렉션 프레임워크 다루기
		// ArrayList - 가변크기를 지원하는 배열

		// ArrayList 선언
		// ArrayList 변수명 =new ArrayList();
		ArrayList sjdata = new ArrayList();
		// JDK1.5 이전방식으로 코드 작성

		// ArrayList에 데이터 추가
		// 변수명.add(값)
		sjdata.add(123);
		sjdata.add('가');
		sjdata.add(987.65);
		sjdata.add("xyz");

		// 특정위치에 데이터 추가 변수명(add(위치,내용))
		sjdata.add(2, new Sungjuk_VO());
		// sjdata.add(10, new Sungjuk_VO()); 오류코드
		// sjdata에는 총 5개의 데이터가 저장중, 따라서 10번째 위치에 데이터 추가는 불가

		// ArrayList상의 데이터 알아내기 (get(위치)
		System.out.println(sjdata.get(0));
		System.out.println(sjdata.get(1));
		System.out.println(sjdata.get(2));
		//

		// ArrayList에 저장된 데이터 갯수 알아내기 (size())
		System.out.println(sjdata.size());

		// ArrayList에 저장된 데이터 제거 (remove(위치))
		sjdata.remove(3);
		System.out.println(sjdata.size());
		System.out.println(sjdata.get(3));

		// ArrayList의 데이터 찾기 (contains(값))
		System.out.println(sjdata.contains('가'));
		System.out.println(sjdata.contains(987.65));
		System.out.println(sjdata.contains("xyz"));

		// ArrayList의 데이터찾기(indexof(값))
		System.out.println(sjdata.indexOf('가'));
		System.out.println(sjdata.indexOf(987.65));
		System.out.println(sjdata.indexOf("xyz"));

		// ArrayList의 데이터 모두 제거(clear())
		sjdata.clear();

		// ArrayList의 데이터 존재여부 확인(isEmpty(값))
		System.out.println(sjdata.isEmpty());

		/*------------------------------------------------------------------------------------*/

		// ArrayList상의 모든 데이터 출력(1)

		sjdata.add("희애");
		sjdata.add("혜교");
		sjdata.add("영애");
		sjdata.add("지현");
		sjdata.add("성령");
		sjdata.add("혜수");
		for (int i = 0; i < sjdata.size(); ++i) {
			System.out.print(sjdata.get(i));
		}
System.out.println();
		// ArrayList상의 모든 데이터 출력(2)
		// Iterator 인터페이스를 이용하면 편리하게 Collection의 요소들을 처리할 수 있음
		Iterator iter = sjdata.iterator();
		while (iter.hasNext()) {
			System.out.print(iter.next());
		}
	}

}
